/* hr_clear.c - Clear high resolution display page from start of page * to end of page by filling with the bit pattern for the specified * color c. Two bytes, one word, are filled on each access since * adjacent bytes of the same color have the low 7 bits inverted. * Integers must be unsigned. Returns void. * * Environment: Apple II, Aztec c65 V1.05B * Programmer: Don Strayer * Date: 15-Jun-88 */ #include hr_clear( sop , eop , c ) int sop; /* start of page */ int eop; /* end of page */ int c; /* color */ { int *wa; /* pointer to word address */ int pat; /* bit pattern for that word */ switch ( c ) /* set pattern for specified color */ { case HR_BLACK: { pat = 0; /* black - binary zeroes */ break; } case HR_PURPLE: /* odd columns on, high order off */ { pat = 21802; /* binary 0101010100101010 */ break; } case HR_BLUE: /* even columns on, high order off */ { pat = 10837; /* binary 0010101001010101 */ break; } case HR_GREEN: /* odd columns on, high order on */ { pat = 54698; /* binary 1101010110101010 */ break; } case HR_ORANGE: /* even columns on, high order on */ { pat = 43733; /* binary 1010101011010101 */ break; } case HR_WHITE: { pat = 65535; /* white - binary ones */ break; } default: { pat = 0; /* default black - binary zeroes */ break; } } for ( wa = sop; wa < eop; ++wa ) /* fill the page from sop to eop */ *wa = pat; return(); }